Puzzle creation and sharing over a network

ABSTRACT

A system and method are provided for generating a puzzle from media content. The method includes receiving input indicative of a selection of a media content to be converted into puzzle content, receiving input indicative of at least one edit to be applied to the puzzle content, receiving input indicative of at least one puzzle property to be applied to the puzzle content, generating the puzzle content based on the at least one edit and the at least one puzzle property, and sending the puzzle content to a recipient. The system includes a computing device having a processor and a memory configured to implement the method.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims the benefit of and claims priority to U.S.Provisional Patent Application No. 62/009,878 entitled “PUZZLE CREATIONAND SHARING OVER A NETWORK” and filed on Jun. 9, 2014 for Ryo P. Imai,and to U.S. Provisional Patent Application No. 62/052,648 entitled“PUZZLE CREATION AND SHARING OVER A NETWORK” and filed on Sep. 19, 2014,both of which are incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates to gaming systems, and more particularly,relates to providing a platform for integrating a social network andgames created from media.

BACKGROUND

Traditional jigsaw puzzles are well known, having been popular for over100 years. Generally, a jigsaw puzzle consists of irregularly shapedpieces of wood, plastic, or cardboard, that when assembled properly forman image. Jigsaw puzzles can be used purely for entertainment purposes,as many people enjoy solving jigsaw puzzles with friends. Additionally,jigsaw puzzles can be used for teaching. For example, a jigsaw puzzle ofthe United States can be helpful to teach children and adults geographythrough the proper placement of puzzle pieces.

With the proliferation of electronic computing devices, such as PCs,tablets, and smartphones, many games that were traditionally playedface-to-face have been implemented in an electronic format that tends toremove the friendship element of the traditional game. However, much ofthe enjoyment of playing a jigsaw puzzle is the involvement of friends.

SUMMARY

A system and method are provided for generating a puzzle from mediacontent. The method includes receiving input indicative of a selectionof a media content to be converted into puzzle content, receiving inputindicative of at least one edit to be applied to the puzzle content,receiving input indicative of at least one puzzle property to be appliedto the puzzle content, generating the puzzle content based on the atleast one edit and the at least one puzzle property, and sending thepuzzle content to a recipient.

In one embodiment, the generated puzzle content comprises an alteredversion of the media content that is partitioned into a quantity ofportions according to the difficulty level and scrambled. The methodincludes, in another embodiment, presenting at a recipient device anunaltered version of the media content in response to the recipientsolving the puzzle content according to the at least one puzzleproperty. The method may also include receiving an indication, at the atleast one computing device, that the generated puzzle content has beensolved by the recipient in accordance with the at least one puzzleproperty.

In another example, the at least one puzzle property comprises defininga puzzle duration, where the puzzle duration comprises a quantity oftime for the recipient to solve the puzzle content. In one embodiment,the method also includes receiving an indication that the recipient hasfailed to solve the puzzle content according to the puzzle duration, andaccepting or denying a request for additional time.

In one embodiment, the at least one edit to be applied to the puzzlecontent further comprises at least one of: adding text to an image;altering a hue, cropping, or applying a filter. Additionally, the mediacontent comprises at least one of an image file or a video file.

The system, in one embodiment, comprises at least one computing deviceand at least one software module that are together configured forperforming the above described method.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the advantages of the embodiments of the invention will bereadily understood, a more particular description of the embodimentsbriefly described above will be rendered by reference to specificembodiments that are illustrated in the appended drawings. Understandingthat these drawings depict only some embodiments and are not thereforeto be considered to be limiting of scope, the embodiments will bedescribed and explained with additional specificity and detail throughthe use of the accompanying drawings, in which:

FIG. 1 depicts one embodiment of a system for puzzle creation andsharing;

FIG. 2 is a schematic block diagram illustrating one embodiment of aclient module in accordance with embodiments of the present disclosure;

FIG. 3 is a schematic block diagram illustrating one embodiment of aserver module in accordance with embodiments of the present disclosure;

FIG. 4 is a diagram illustrating one embodiment of a client devicepresenting a user interface for editing an image;

FIGS. 5 and 6 are diagrams illustrating one embodiment of a clientdevice presenting a user interface for setting puzzle properties of theimage;

FIG. 7 is a diagram illustrating one embodiment of a user interface forpreviewing puzzle content in accordance with the present disclosure;

FIGS. 8 and 9 are diagrams illustrating embodiments of user interfacesfor solving puzzle content;

FIG. 10 illustrates a flow diagram of one embodiment of a method forgenerating puzzle content;

FIG. 11 illustrates a flow diagram of one embodiment of a method forreceiving puzzle content;

FIG. 12 is a diagram of one embodiment of a computer system forfacilitating template generation;

FIG. 13 is a schematic block diagram illustrating another embodiment ofa client module in accordance with embodiments of the disclosure; and

FIG. 14 is a schematic block diagram illustrating one embodiment of auser interface for modifying videos with puzzle content in accordancewith embodiments of the disclosure.

DETAILED DESCRIPTION

Aspects of the present disclosure may be embodied as a system, method orcomputer program product. Accordingly, aspects of the present disclosuremay take the form of an entirely hardware embodiment, an entirelysoftware embodiment (including firmware, resident software, micro-code,etc.) or an embodiment combining software and hardware aspects that mayall generally be referred to herein as a “circuit,” “module” or“system.” Furthermore, aspects of the present disclosure may take theform of a computer program product embodied in one or more computerreadable storage media having computer readable program code embodiedthereon.

Many of the functional units described in this specification have beenlabeled as modules, in order to more particularly emphasize theirimplementation independence. For example, a module may be implemented asa hardware circuit comprising custom VLSI circuits or gate arrays,off-the-shelf semiconductors such as logic chips, transistors, or otherdiscrete components. A module may also be implemented in programmablehardware devices such as field programmable gate arrays, programmablearray logic, programmable logic devices or the like.

Modules may also be implemented in software for execution by varioustypes of processors. An identified module of executable code may, forinstance, comprise one or more physical or logical blocks of computerinstructions which may, for instance, be organized as an object,procedure, or function. Nevertheless, the executables of an identifiedmodule need not be physically located together, but may comprisedisparate instructions stored in different locations which, when joinedlogically together, comprise the module and achieve the stated purposefor the module.

Indeed, a module of executable code may be a single instruction, or manyinstructions, and may even be distributed over several different codesegments, among different programs, and across several memory devices.Similarly, operational data may be identified and illustrated hereinwithin modules, and may be embodied in any suitable form and organizedwithin any suitable type of data structure. The operational data may becollected as a single data set, or may be distributed over differentlocations including over different storage devices, and may exist, atleast partially, merely as electronic signals on a system or network.Where a module or portions of a module are implemented in software, thesoftware portions are stored on one or more computer readable storagemedia.

Any combination of one or more computer readable storage media may beutilized. A computer readable storage medium may be, for example, butnot limited to, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, or device, or any suitablecombination of the foregoing.

More specific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: a portable computerdiskette, a hard disk, a random access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), a portable compact disc read-only memory (CD-ROM), a digitalversatile disc (DVD), a Blu-ray disc, an optical storage device, amagnetic tape, a Bernoulli drive, a magnetic disk, a magnetic storagedevice, a punch card, integrated circuits, other digital processingapparatus memory devices, or any suitable combination of the foregoing,but would not include propagating signals. In the context of thisdocument, a computer readable storage medium may be any tangible mediumthat can contain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

Computer program code for carrying out operations for aspects of thepresent disclosure may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Python, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Reference throughout this specification to “one embodiment,” “anembodiment,” or similar language means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the present disclosure. Thus,appearances of the phrases “in one embodiment,” “in an embodiment,” andsimilar language throughout this specification may, but do notnecessarily, all refer to the same embodiment, but mean “one or more butnot all embodiments” unless expressly specified otherwise. The terms“including,” “comprising,” “having,” and variations thereof mean“including but not limited to” unless expressly specified otherwise. Anenumerated listing of items does not imply that any or all of the itemsare mutually exclusive and/or mutually inclusive, unless expresslyspecified otherwise. The terms “a,” “an,” and “the” also refer to “oneor more” unless expressly specified otherwise.

Furthermore, the described features, structures, or characteristics ofthe disclosure may be combined in any suitable manner in one or moreembodiments. In the following description, numerous specific details areprovided, such as examples of programming, software modules, userselections, network transactions, database queries, database structures,hardware modules, hardware circuits, hardware chips, etc., to provide athorough understanding of embodiments of the disclosure. However, thedisclosure may be practiced without one or more of the specific details,or with other methods, components, materials, and so forth. In otherinstances, well-known structures, materials, or operations are not shownor described in detail to avoid obscuring aspects of the disclosure.

Aspects of the present disclosure are described below with reference toschematic flowchart diagrams and/or schematic block diagrams of methods,apparatuses, systems, and computer program products according toembodiments of the disclosure. It will be understood that each block ofthe schematic flowchart diagrams and/or schematic block diagrams, andcombinations of blocks in the schematic flowchart diagrams and/orschematic block diagrams, can be implemented by computer programinstructions. These computer program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the schematic flowchartdiagrams and/or schematic block diagrams block or blocks.

These computer program instructions may also be stored in a computerreadable storage medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablestorage medium produce an article of manufacture including instructionswhich implement the function/act specified in the schematic flowchartdiagrams and/or schematic block diagrams block or blocks. The computerprogram instructions may also be loaded onto a computer, otherprogrammable data processing apparatus, or other devices to cause aseries of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The schematic flowchart diagrams and/or schematic block diagrams in theFigures illustrate the architecture, functionality, and operation ofpossible implementations of apparatuses, systems, methods and computerprogram products according to various embodiments of the presentdisclosure. In this regard, each block in the schematic flowchartdiagrams and/or schematic block diagrams may represent a module,segment, or portion of code, which comprises one or more executableinstructions for implementing the specified logical function(s).

It should also be noted that, in some alternative implementations, thefunctions noted in the block may occur out of the order noted in thefigures. For example, two blocks shown in succession may, in fact, beexecuted substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved. Other steps and methods may be conceived that are equivalentin function, logic, or effect to one or more blocks, or portionsthereof, of the illustrated figures.

Although various arrow types and line types may be employed in theflowchart and/or block diagrams, they are understood not to limit thescope of the corresponding embodiments. Indeed, some arrows or otherconnectors may be used to indicate only the logical flow of the depictedembodiment. For instance, an arrow may indicate a waiting or monitoringperiod of unspecified duration between enumerated steps of the depictedembodiment. It will also be noted that each block of the block diagramsand/or flowchart diagrams, and combinations of blocks in the blockdiagrams and/or flowchart diagrams, can be implemented by specialpurpose hardware-based systems that perform the specified functions oracts, or combinations of special purpose hardware and computerinstructions.

The description of elements in each figure may refer to elements ofproceeding figures. Like numbers refer to like elements in all figures,including alternate embodiments of like elements.

FIG. 1 depicts one embodiment of a system 100 for puzzle creation andsharing. The system 100, in the depicted embodiment, includes a puzzleserver 102, a data network 104, and one or more clients 106. In thedepicted embodiment, the puzzle server 102 may communicate with one ormore clients 106 over the data network 104. In one embodiment, a client106 may include any device capable of displaying puzzle content for auser. For example, in some embodiments, clients 106 may include devicessuch as a desktop computer, a laptop computer, a tablet, a smartphone orother mobile device, or the like.

In another embodiment, the puzzle server 102 may be any server capableof delivering puzzle content to a client 106 (or “client device”) overthe data network 104. For example, in some embodiments, the puzzleserver 102 may include a standalone server, a dedicated server, avirtual server, a blade server, a cluster of servers, or the like. Inmany embodiments, the data network 104 connecting the puzzle server 102to clients 106 is the Internet; however, in another embodiment, the datanetwork 104 may include another type of network, such as an intranetnetwork, a local area network (LAN), a metropolitan area network (MAN),a wide area network (WAN), or the like.

The devices 106 connect to the data network 104, in one embodiment, by adata link 108. The data link 108 may be any data connection that enablesroutable traffic between the puzzle server 102 and the client 106 totraverse the data network 104. Examples include, but are not limited tocellular data connections, wired data connections (e.g., Ethernet), andwireless data connections (e.g., Wi-Fi, Bluetooth, etc.). In anotherembodiment, the clients 106 are capable of communicating directly withthe puzzle server 102 via an ad-hoc connection.

As will be described below, the puzzle server 102 is configured toenable the sharing of puzzle content between client 106 devices. As usedherein, the term “puzzle content” refers to a multimedia message in theform of a game that is to be solved by a recipient. In one example, asolvable multimedia message in the form of a game is an image that hasbeen converted to a jigsaw puzzle. Each client device 106 is configuredto allow a user to solve the jigsaw puzzle before allowing the user toview the image upon which the jigsaw puzzle was based. In a similarmanner, puzzle content may be configured for allowing a user to listento a song or view a video after, for example, a puzzle is solved, wherethe puzzle is based on a screenshot of the video or an album cover. Eachclient 106 includes a client module (see FIG. 2), and the puzzle server102 includes a server module (see FIG. 3) for enabling the abovedescribed features.

FIG. 2 is a schematic block diagram illustrating one embodiment of aclient module 200 in accordance with embodiments of the presentdisclosure. The client module 200 is configured to allow the creationand exchange of puzzle content between client devices 106. The clientmodule 200, in one embodiment, is configured with a register module 202,a contact module 204, an image module 206, a puzzle module 208, amailbox module 210, a promotion module 212, and a chat module 214.

In one embodiment, the register module 202 is configured to allow a userto register or login to the puzzle server 102. The register module 202is configured to generate a user interface to be displayed on the clientdevice 106. The user interface may be configured to prompt for andreceive user login credentials. The login credentials may include ausername and a password. Alternatively, the login credentials maycomprise a unique identifier of the device 106. The unique identifiermay be associated with a particular user. For example, the uniqueidentifier may be a phone number associated with the client device 106,or a MAC address associated with the client device 106. Other types oflogin credentials usable for logging in to the puzzle server 102include, but are not limited to, smart cards, fingerprints, etc.

In one embodiment, the contact module 204 is configured for maintaininga list of contacts associated with the user. For example, the contactmodule 204 may be configured for retrieving from the puzzle server 102 alisting of all contacts/friends/associates of the user. In someembodiments, the contact module 204 is also configured to generating andpresenting a user interface for finding and adding a new contact orfriend to the list of contacts. The new contact or friend may be addedby, for example, username, phone number, email address, etc. The contactmodule 204 is also configured to update the puzzle server 102 when auser adds or removes a friend or contact. In another embodiment, thecontact module 204 may be configured to import a list of user contactsfrom another social media service or website.

In one embodiment, the image module 206 is configured for identifyingand manipulating an image. For example, the image module 206 may beconfigured to generate a user interface for receiving input from theuser that is indicative of how a user wishes to select an image (seeFIG. 4). The image module 206 may be configured to allow a user tocapture an image from an image capture device (e.g., camera), oralternatively, to allow a user to select an already captured image. Thealready captured image may be stored locally on the same device as theclient module or remotely on another client device 106 or anotherserver, like the puzzle server 102 or a third party image sharingservice.

In some embodiments, the image module 206 is also configured to generatea user interface for manipulating the selected or captured image. Theimage module 206 may provide a user interface for editing ormanipulating the image. Examples of editing or manipulating the imageinclude, but are not limited to, the abilities to resize or crop theimage, lighten/darken the contrast of the image, apply a filter, apply awatermark, remove blemishes (e.g., redeye, etc.), add custom text to theimage (i.e., custom fonts, font size, etc.), remove or modify imagemetadata (e.g., exif data), combine one or more images, and draw on theimage.

The puzzle module 208, in one embodiment, is configured to generatepuzzle content from the image. The puzzle module 208 receives the imagefrom the image module 206 and provides a user interface configured toreceive input from the user regarding puzzle properties. In oneembodiment, the term “puzzle properties” refers to any user-definableproperty or configuration of the puzzle content. Examples of “puzzleproperties” include, but are not limited to difficulty, and puzzleduration. The difficulty of the puzzle content, in one example, isrelated to a number of puzzle pieces that the image is divided into. Inother words, the puzzle module 208 is configured to divide the imageinto a number of puzzle pieces that are randomly positionable to createa jigsaw puzzle. The number of puzzle pieces may be in the range ofbetween about 2 and 1000 or more.

The puzzle module 208, in certain embodiments, prompts the user toselect a number of puzzle pieces. In other embodiments, the puzzlemodule 208 is configured to receive a difficulty level, examples ofwhich include but are not limited to “easy,” “medium,” “hard,” and“extra hard.” The difficulty levels may be assigned to a particularnumber of puzzle pieces (or range of numbers). For example, a selectionof the “easy” level may result in puzzle content having 4 pieces, whilea selection of “hard” may result in puzzle content having 16 pieces. Anexample of the graphical user interface generated by the puzzle module208 will be discussed below with reference to FIG. 5.

As described, the puzzle module 208 is configured to define other puzzleproperties, such as puzzle duration. The term “puzzle duration” refersto a user-definable time period for solving the puzzle content beforethe puzzle content expires. In other words, the user may set, forexample, a 3 minute period for the recipient to solve the puzzlecontent. If, at the end of the 3 minute period the recipient has beenunable to solve the puzzle content, the puzzle module 208 may define howthe puzzle content expires. In one example, the puzzle content maydisappear. The user may, via the puzzle module 208, require otheractions at the expiration of the time period. Examples include, but arenot limited to, an animation showing how to solve the puzzle, an optionto save the image, an option to share the image, etc.

In another embodiment, the puzzle module 208 is also configured torender received puzzle content. Puzzle content sent from another user isreceived, as will be described below, by the mailbox module 210 andpassed to the puzzle module 208. The puzzle module 208 of the recipientis configured to enforce the puzzle properties defined by the puzzlemodule 208 of the sender. In other words, if the sender of the puzzlecontent has defined a 10 minute expiration or timeout period, the puzzlemodule 208 of the recipient enforces the 10 minute expiration andexecutes the desired timeout action (e.g., disappearing image, animationshowing how to solve the puzzle, etc.).

In another embodiment, the puzzle module 208 is also configured toenable a user to manipulate the puzzle content. For example, the puzzlemodule 208 is configured to allow the recipient user to move puzzlepieces around. In one embodiment, the puzzle module 208 allows therecipient user to move one piece at a time, in alternative embodiment,the puzzle module 208 allows the user to move multiple pieces or tilessimultaneously.

In one embodiment, the mailbox module 210 is configured to send andreceive puzzle content. Stated differently the mailbox module 210 isconfigured for sending puzzle content created by the user via the puzzlemodule 208, and receive puzzle content from other users. The mailboxmodule 210, in a further embodiment, monitors the progress of otherusers in relation to puzzle content created and sent. In other words,the mailbox module 210 is configured to determine if a recipient ofpuzzle content was able to solve the puzzle content. The mailbox module210 may query directly the client device 106 of the recipientperiodically to determine the resolution (e.g., solved or unsolved) ofthe puzzle content. In an alternative embodiment, the mailbox module 210queries or receives an indication from the puzzle server 102 that therecipient has been successful/unsuccessful. In another embodiment, themailbox module 210 of the recipient client device 106 sends updateseither directly to the sender or to the sender via the puzzle server102.

In one embodiment, the promotion module 212 is configured to identifypromotions in the puzzle content 212. For example, a retailer maydistribute promotions or coupons as puzzle content with the stipulationthat the puzzle content be solved within a certain time period. If therecipient is able to solve the puzzle content then a promotion or couponcode is made available to the recipient for use at the retailer's placeof business or website. The promotion module 212, in one embodiment,receives and stores the promotion or coupon until the recipient user isready to use the promotion or coupon.

In one embodiment, the client module 200 also includes a chat module 214for enabling chatting between senders and recipients (e.g., one-to-oneor multi-user chat). The chat module 214, in one embodiment,communicates directly between the sending user client module 200 and therecipient user client module 200. In alternative embodiment, the chatmodules 214 of the sender and the recipient communicate through thepuzzle server 102.

FIG. 3 is a schematic block diagram illustrating one embodiment of aserver module 300 in accordance with embodiments of the presentdisclosure. The server module 300, as described above, is configured toexecute on at least one network attached computing device. The servermodule 300, in one embodiment, operates on the server 102 of FIG. 1. Theserver module 300 comprises a user module 302, a communication module304, a server promotion module 306, and a user database 308.

In one embodiment, the user module 302 is configured for registering andauthenticating users over the network. The user module 302, via thecommunication module 304, communicates with the client modules 200 ofeach client device 106. The user module 302 further maintains userrecords in the user database 308. Each user has a corresponding userrecord or profile in the user database. Each record or profile mayinclude user identifiable information. Additionally, each record mayinclude user demographic information, including but not limited to, age,location, gender, income bracket, likes, dislikes, hobbies, interests,political inclination, etc. In a further embodiment, each user recordincludes a history of puzzle content activity. In other words, eachrecord includes a history of puzzles the user has attempted to solve, ifthe user has been successful, and if successful, how long did it take tosolve, etc. The user database also maintains copies of user-createdpuzzle content.

In one embodiment, the server promotion module 306 is configured formanaging promotions for third-party entities. Examples include,retailers, other businesses, charities, political organizations, etc. Athird-party entity may desire to engage users with solvable puzzlecontent. The server promotion module 306, in one embodiment, isconfigured to receive promotion details from the third-party entity anddistribute puzzle content based on the promotion details. Examples ofpromotion details include, but are not limited to, specific users basedon demographics, location, or previous purchase history. In one example,a retailer may submit a promotion campaign to the promotion module 306that specifies sending coupons as puzzle content to women between theage of 19 and 35 that live in a 10 mile radius of the retailer.Accordingly, the promotion module queries the user database 308 tofilter users based on the promotion details and sends out the puzzlecontent via the communication module 304.

FIG. 4 is a diagram illustrating one embodiment of a client device 106presenting a user interface for editing an image. As described above,the client module 200 may provide a user interface for selecting, andthen (as depicted) editing an image. The image may be captured from acamera, or selected from a photo gallery or other photo depository. Theimage may be edited by adding text 402, drawing 404, coloring 406, oradding filters 408 or other effects.

FIGS. 5 and 6 are diagrams illustrating one embodiment of a clientdevice 106 presenting a user interface for setting puzzle properties ofthe image. In one embodiment, and as described above, one of the puzzleproperties of the image is the difficulty of a jigsaw puzzle. The clientmodule 200 is configured to receive a difficulty as selected by the uservia button 502. As depicted, the easy button 502 will partition theimage into four pieces, the medium into nine, and the hard into 16 ormore. Button 504 enables a user to toggle between puzzle properties. Inthis depiction, the user may toggle between the difficulty screen andthe timer screen. Other puzzle properties or actions are contemplated,including but not limited to, background music, animation/movie/gif toplay upon completion, amount of retries if a person fails, etc.

FIG. 7 is a diagram illustrating one embodiment of a user interface forpreviewing puzzle content in accordance with the present disclosure. Theclient module 200 is configured to provide a preview of the puzzlecontent following receipt of at least one puzzle property. In thedepicted embodiment, the sending user has selected a puzzle name of“Puppy Chow,” a medium difficulty with 9 tiles or portions, and anexpiration timer with a value of 1 min 30 sec. Although the tiles aredepicted having a generally rectangular shape, other shapes, such astraditional jigsaw shapes, are contemplated.

FIGS. 8 and 9 are diagrams illustrating embodiments of user interfacesfor solving puzzle content. In FIG. 8, the recipient user has arrangedthe puzzle tiles in the correct order within the allocated timeframe. Asdiscussed above, the client module 200 allows a successful recipient toshare the image on a social network, and/or save the image to thegallery or cameral roll. In FIG. 9, the recipient user has notsuccessfully solved the puzzle, and is given the option to quit orrequest from the sending user more time. The client module 200 isconfigured to send a request either directly to the sending user, or viathe puzzle server 102, requesting additional time to solve the puzzle.

FIG. 10 illustrates a flow diagram of one embodiment of a method 1000for generating puzzle content. The method is performed by processinglogic that may comprise hardware (circuitry, dedicated logic, etc.),software (such as is run on a general purpose computer system or adedicated machine), or a combination of both. In one embodiment, themethod is performed by a client module (e.g., client module 200 of FIG.2).

The method 1000 starts, and the processing logic, at block 1002,receives an image. In some embodiment, the processing logic receives theimage by capturing the image from a camera, or alternatively byreceiving a selection from an image gallery or other image depository.At block 1004 the processing logic receives input indicative of a user'sdesire to edit the image, and the processing logic provides a userinterface for editing the image. Examples of editing, as discussedabove, include adding drawings, text, changing brightness, contrast, andcolor, applying a filter, etc. Also, the processing logic may receive,at block 1004, a name for the puzzle content.

At block 1006, the processing logic receives a puzzle property. Thepuzzle property, in one embodiment, is a difficulty level as discussedabove. Additionally, the puzzle property may comprise an expirationtimer (at block 1008). The processing logic, at block 1010, receives anindication of which contact(s) to send the puzzle content to, and thenat block 1012 provides a preview of the puzzle content.

At block 1014, the processing logic saves and sends the image, and thenmonitors the results of the recipient user. At block 1016 the processinglogic provides the results to the sending user. The method 1000 thenends.

FIG. 11 illustrates a flow diagram of one embodiment of a method 1000for receiving puzzle content. The method is performed by processinglogic that may comprise hardware (circuitry, dedicated logic, etc.),software (such as is run on a general purpose computer system or adedicated machine), or a combination of both. In one embodiment, themethod is performed by a client module (e.g., client module 200 of FIG.2).

The method 1100 starts and a recipient user receives puzzle content atblock 1102. The processing logic receives the puzzle content from asending user and presents the puzzle content to the recipient user. Uponacceptance by the recipient user, the processing logic enforces thepuzzle properties. In the depicted embodiment, the processing logicenforces the puzzle properties by, at block 1104, beginning the timer.

At decision block 1106, if the recipient user is able to solve thepuzzle, the processing logic allows the recipient user to share and/orsave the image, at block 1108. The processing logic then, at block 1110,sends results to the sending user.

If, however, at decision block 1106, the processing logic determinesthat the recipient user has not solved the puzzle content according tothe puzzle properties (i.e., within a defined time period), theprocessing logic deletes the puzzle at block 1112. The processing logicmay, at block 1114, allow the recipient user to request more time, andif granted, return to block 1104 to begin a time period again forsolving the puzzle content. In an alternative embodiment, the processinglogic may allow the user to request more time before deleting the puzzlecontent, so as to not require that the puzzle content gets retransmittedto the user. If additional time is not granted, the processing logicproceeds to block 1110 and sends the “unsolved” results to the sendinguser. The method 1100 then ends.

FIG. 12 is a diagram of one embodiment of a computer system forfacilitating template generation. Within the computer system 1200 is aset of instructions for causing the machine to perform any one or moreof the methodologies discussed herein. In alternative embodiments, themachine may be connected (e.g., networked) to other machines in a LAN,an intranet, an extranet, or the Internet. The machine may be a host ina cloud, a cloud provider system, a cloud controller or any othermachine. The machine may operate in the capacity of a server or a clientmachine in a client-server network environment, or as a peer machine ina peer-to-peer (or distributed) network environment. The machine may bea personal computer (PC), a tablet PC, a console device or set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a server, a network router, switch or bridge, or any machinecapable of executing a set of instructions (sequential or otherwise)that specify actions to be taken by that machine. Further, while only asingle machine is illustrated, the term “machine” shall also be taken toinclude any collection of machines (e.g., computers) that individuallyor jointly execute a set (or multiple sets) of instructions to performany one or more of the methodologies discussed herein.

The exemplary computer system 1200 includes a processing device 1202, amain memory 1204 (e.g., read-only memory (ROM), flash memory, dynamicrandom access memory (DRAM) such as synchronous DRAM (SDRAM) or DRAM(RDRAM), etc.), a static memory 1206 (e.g., flash memory, static randomaccess memory (SRAM), etc.), and a secondary memory 1218 (e.g., a datastorage device in the form of a drive unit, which may include fixed orremovable computer-readable storage medium), which communicate with eachother via a bus 1230.

The processing device 1202 represents one or more general-purposeprocessing devices such as a microprocessor, central processing unit, orthe like. More particularly, the processing device 1202 may be a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, processor implementing other instruction sets, orprocessors implementing a combination of instruction sets. Theprocessing device 1202 may also be one or more special-purposeprocessing devices such as an application specific integrated circuit(ASIC), a field programmable gate array (FPGA), a digital signalprocessor (DSP), network processor, or the like. The processing device1202 is configured to execute the instructions 1226 for performing theoperations and steps discussed herein.

The computer system 1200 may further include a network interface device1222. The computer system 1200 also may include a video display unit1210 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT))connected to the computer system through a graphics port and graphicschipset, an alphanumeric input device 1212 (e.g., a keyboard), a cursorcontrol device 1214 (e.g., a mouse), and a signal generation device 1220(e.g., a speaker).

The secondary memory 1218 may include a machine-readable storage medium(or more specifically a computer-readable storage medium) 1224 on whichis stored one or more sets of instructions 1226 embodying any one ormore of the methodologies or functions described herein. In oneembodiment, the instructions 1226 include instructions for the templategenerator 300. The instructions 1226 may also reside, completely or atleast partially, within the main memory 1204 and/or within theprocessing device 1202 during execution thereof by the computer system1200. The main memory 1204 and the processing device 1202 alsoconstituting machine-readable storage media.

The computer-readable storage medium 1224 or computer storage device mayalso be used to store the instructions 1226 persistently. While thecomputer-readable storage medium 1224 is shown in an exemplaryembodiment to be a single medium, the term “computer-readable storagemedium” should be taken to include a single medium or multiple media(e.g., a centralized or distributed database, and/or associated cachesand servers) that store the one or more sets of instructions. The term“computer-readable storage medium” shall also be taken to include anymedium that is capable of storing or encoding a set of instructions forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of the present invention. The term“computer-readable storage medium” shall accordingly be taken toinclude, but not be limited to, solid-state memories, and optical andmagnetic media.

The instructions 1226, components and other features described hereincan be implemented as discrete hardware components or integrated in thefunctionality of hardware components such as ASICS, FPGAs, DSPs orsimilar devices. In addition, the instructions 1226 can be implementedas firmware or functional circuitry within hardware devices. Further,the instructions 1226 can be implemented in any combination hardwaredevices and software components.

FIG. 13 is a schematic block diagram illustrating another embodiment ofa client module 1300 in accordance with embodiments of the disclosure.As described above, the client module is configured for the creation andsharing of solvable multimedia messages, or puzzle content. In oneexample, a solvable multimedia message in the form of a game is an imagethat has been converted to a jigsaw puzzle. Although discussed hereinbelow as a “jigsaw puzzle” or a “jigsaw”, the below description isequally applicable to any type of multimedia game. Each client device106 is configured to allow a user to solve the jigsaw puzzle beforeallowing the user to view the image upon which the jigsaw puzzle wasbased. In a similar manner, puzzle content may be configured forallowing a user to listen to a song or view a video after, for example,a puzzle is solved, where the puzzle is based on a screenshot of thevideo or an album cover. To enable this functionality, the client module1300 may include a video module 1302.

The video module 1302 is configured to receiving a selection of videocontent to be shared. The selection of video content to be shared may bereceived from a user browsing a multimedia gallery, or accessing anonline repository of videos. The video module 1302 is further configuredto present a user interface for playback of the video, with playbackcontrol so that a user may pause the video at any point and select thepaused video frame to be used as an image for creating a jigsaw puzzle.

In an alternative embodiment, the video module 1302 is configured toallow a user to insert any image accessible to the user into the videoas puzzle content. Stated differently, the video module 1302 isconfigured to receive an image, convert the image into a puzzle, via thepuzzle module 208, and insert the puzzle into the video. The videomodule 1302 is further configured to enforce any puzzle propertiesdefined by the user. For example, if the user set a specific durationand difficulty, the video module 1302 may require a recipient to solvethe puzzle according to the puzzle properties before allowing the userto watch the remainder of the video. One or more puzzles may be insertedinto the video content at any point in the timeline of the video.Additionally, the video module 1302 may be configured to allow therecipient of the video puzzle to save the video after successfullysolving all puzzles embedded in the video.

The video module 1302 is also configured for rendering a received videopuzzle, and enforcing any puzzle properties defined by the sender. Asdescribed above, if the recipient is able to solve all of the puzzlesinserted into the video, the video module 1302 presents options to therecipient to save and/or share the video.

In some embodiments, the video module 1302 is configured to generate auser interface for manipulating the selected or captured video. Examplesof editing or manipulating the video include, but are not limited to,cropping the length of the video, adjusting brightness/contrast,applying a watermark, adding custom text, and adding additional audiotracks. Examples of additional audio tracks may include, but are notlimited to, warnings that a time to solve the puzzle is about to expire,motivational or taunting voice tracks, etc.

The client module 1300, in one embodiment, may also include a flashcardmodule 1304. The flashcard module 1304 may be configured forimplementing a puzzle-based flashcard. One example of a puzzle-basedflashcard is a jigsaw puzzle that includes flashcard elements. Otherexamples include, but are not limited to, a matching game that includesflashcard elements. Traditional flashcards are useful for teachingsubjects such as vocabulary, historical facts, mathematics, language,etc. Traditional flashcards typically include information on both sidesof the card. Given a prompt, a user responds with an answer, and thenverifies the answer on the opposite side of the flashcard.

The flashcard module 1304 is configured to incorporate flashcardelements into, for example, the jigsaw puzzle created by the puzzlemodule 208. For example, the flashcard module 1304 may be configured togenerate a flashcard of a cat jigsaw. The flashcard module 1304 promptsa recipient to solve the jigsaw puzzle of the cat, and then prompt theuser (e.g., small child) to identify the animal in the jigsaw. Theflashcard module 1304 may be configured to animate the image of the catand “flip it” to verify that the animal is a cat. The verification maybe the text “cat” or alternatively, a text-to-speech engine thatannounces the word “cat.” Time limits, and any other puzzle propertydescribed above, may be applied to the flashcard style jigsaw puzzle.The creation of the flashcards may be achieved via user interfacesdescribed above, and created by either the flashcard module 1304 or theimage module 206.

In another embodiment, the flashcard module 1304 is configured togenerate a flashcard video jigsaw-type puzzle. Incorporating thefeatures described above, the flashcard module 1304 may implement ajigsaw puzzle that when solved, displays a video prompt to a user. Thevideo prompt may subsequently be followed by a “flipping card” animationfor a visual verification, or alternatively the text-to-speech enginemay announce the verification.

FIG. 14 is a schematic block diagram illustrating one embodiment of auser interface for modifying videos with puzzle content in accordancewith embodiments of the disclosure. The user interface 1400 may includea viewing area 1402 located above a control area 1404. The viewing area1402 is configured to display the video. The control area 1404, in oneembodiment, includes buttons 1406 for controlling playback of content.The buttons may include, but are not limited to, play 1406 a, pause 1406b, rewind 1406 c, and fast forward 1406 d.

In a further embodiment, the user interface 1400 further includes atimeline 1408 that is configured to represent the selected videocontent. The timeline 1408, in the depicted embodiment illustrates videoportions 1410 that are separated by puzzle content, depicted as thelines separating the potions 1410. In other words, a jigsaw puzzle isinserted at each of the depicted lines separating potions 1410. In thisparticular example, the video content includes 4 jigsaw puzzles thatmust be solved before a recipient is allowed to view the next portion1410.

The video module 1302, via the user interface 1400, is configured toallow a user to create the jigsaw-enabled video by allowing the user todrag the control bar 1412 to different points along the timeline, andinsert a jigsaw puzzle via the insert button 1406 e. Inserting a jigsawpuzzle results in video portions 1410 that are separated by the jigsawpuzzle. A portion adjacent and after the jigsaw puzzle on the timelineis viewable in its entirety until the next jigsaw puzzle is presented.The following video portion 1410 becomes viewable once the new jigsawpuzzle is solved. The user interface 1400 may also include volumecontrols 1414.

In the above description, numerous details are set forth. It will beapparent, however, to one skilled in the art, that the present inventionmay be practiced without these specific details. In some instances,well-known structures and devices are shown in block diagram form,rather than in detail, in order to avoid obscuring the presentinvention.

Some portions of the detailed description are presented in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to a result.The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “providing,” “generating,” “detecting,” “identifying,”“storing,” “receiving,” “sending,” or the like, refer to the actions andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical (e.g.,electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The present invention also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but not limited to, any type of diskincluding floppy disks, optical disks, CD-ROMs, and magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, or any type of media suitable forstoring electronic instructions, each coupled to a computer system bus.

The present invention may be provided as a computer program product, orsoftware, that may include a machine-readable medium having storedthereon instructions, which may be used to program a computer system (orother electronic devices) to perform a process according to the presentinvention. A machine-readable medium includes any mechanism for storingor transmitting information in a form readable by a machine (e.g., acomputer). For example, a machine-readable (e.g., computer-readable)medium includes a machine (e.g., a computer) readable storage mediumsuch as a read only memory (“ROM”), random access memory (“RAM”),magnetic disk storage media, optical storage media, flash memorydevices, etc.

It is to be understood that the above description is intended to beillustrative, and not restrictive. Many other embodiments will beapparent to those of skill in the art upon reading and understanding theabove description. Although the present invention has been describedwith reference to specific exemplary embodiments, it will be recognizedthat the invention is not limited to the embodiments described, but canbe practiced with modification and alteration within the spirit andscope of the appended claims. Accordingly, the specification anddrawings are to be regarded in an illustrative sense rather than arestrictive sense. The scope of the invention should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

What is claimed is:
 1. A method performed on at least one computingdevice that includes a processor and a memory, the method comprising:receiving input, via a touch screen of the at least one computingdevice, indicative of a selection of a media content to be convertedinto puzzle content; receiving input indicative of at least one edit tobe applied to the puzzle content, where the at least one edit comprisesgenerating a puzzle name; receiving input indicative of at least onepuzzle property to be applied to the puzzle content, where the at leastone puzzle property comprises a difficulty level; generating the puzzlecontent based on the at least one edit and the at least one puzzleproperty; and sending the puzzle content to a recipient.
 2. The methodof claim 1, where the generated puzzle content comprises an alteredversion of the media content that is partitioned into a quantity ofportions according to the difficulty level and scrambled.
 3. The methodof claim 2, further comprising presenting, at a recipient device, anunaltered version of the media content in response to the recipientsolving the puzzle content according to the at least one puzzleproperty.
 4. The method of claim 2, further comprising receiving anindication, at the at least one computing device, that the generatedpuzzle content has been solved by the recipient in accordance with theat least one puzzle property.
 5. The method of claim 2, where the atleast one puzzle property comprises defining a puzzle duration, thepuzzle duration comprising a quantity of time for the recipient to solvethe puzzle content.
 6. The method of claim 5, further comprisingreceiving an indication that the recipient has failed to solve thepuzzle content according to the puzzle duration, and accepting ordenying a request for additional time.
 7. The method of claim 1, wherethe at least one edit to be applied to the puzzle content furthercomprises at least one of: adding text to an image; altering a hue,cropping, or applying a filter.
 8. The method of claim 1, where themedia content comprises at least one of an image file or a video file.9. The method of claim 8, further comprising receiving an indication ofa frame within the video file for use in generating the puzzle content.10. A system comprising at least one computing device and at least onesoftware module that are together configured for performing actions,where the at least one computing device includes a processor and amemory, the actions comprising: receiving input, via a touch screen ofthe at least one computing device, indicative of a selection of a mediacontent to be converted into puzzle content; receiving input indicativeof at least one edit to be applied to the puzzle content, where the atleast one edit comprises generating a puzzle name; receiving inputindicative of at least one puzzle property to be applied to the puzzlecontent, where the at least one puzzle property comprises a difficultylevel; generating the puzzle content based on the at least one edit andthe at least one puzzle property; and sending the puzzle content to arecipient.
 11. The system of claim 10, where the generated puzzlecontent comprises an altered version of the media content that ispartitioned into a quantity of portions according to the difficultylevel and scrambled.
 12. The system of claim 11, further comprisingpresenting, at a recipient device, an unaltered version of the mediacontent in response to the recipient solving the puzzle contentaccording to the at least one puzzle property.
 13. The system of claim11, further comprising receiving an indication, at the at least onecomputing device, that the generated puzzle content has been solved bythe recipient in accordance with the at least one puzzle property. 14.The system of claim 11, where the at least one puzzle property comprisesdefining a puzzle duration, the puzzle duration comprising a quantity oftime for the recipient to solve the puzzle content.
 15. The system ofclaim 14, further comprising receiving an indication that the recipienthas failed to solve the puzzle content according to the puzzle duration,and accepting or denying a request for additional time.
 16. The systemof claim 10, where the at least one edit to be applied to the puzzlecontent further comprises at least one of: adding text to an image;altering a hue, cropping, or applying a filter.
 17. The system of claim10, where the media content comprises at least one of an image file or avideo file.
 18. The system of claim 17, further comprising receiving anindication of a frame within the video file for use in generating thepuzzle content.
 19. At least one computer storage device storingcomputer-executable instructions that, when executed by a processor of acomputing device that includes a memory, cause the computing device toperform actions comprising: receiving input, via a touch screen of theat least one computing device, indicative of a selection of a mediacontent to be converted into puzzle content; receiving input indicativeof at least one edit to be applied to the puzzle content, where the atleast one edit comprises generating a puzzle name; receiving inputindicative of at least one puzzle property to be applied to the puzzlecontent, where the at least one puzzle property comprises a difficultylevel; generating the puzzle content based on the at least one edit andthe at least one puzzle property; and sending the puzzle content to arecipient.
 20. The at least one computer storage device, where thegenerated puzzle content comprises an altered version of the mediacontent that is partitioned into a quantity of portions according to thedifficulty level and scrambled.